using System;
using System.Collections.Generic;
using System.Text;
using csharp.rad.general;

namespace csharp.rad.sisponto
{
   public class Feriado
   {
      private Database bd;
      Database.Result result = new Database.Result();
      private String f_msgErro;
      private Int32 f_id_feriado;
      private string f_data;
      private string f_motivo;

      public Feriado(Database bancoDeDados)
      {
         this.bd = bancoDeDados;
      }

      public String _msg_erro
      {
         set { f_msgErro = value; }
         get { return f_msgErro; }
      }
      public Int32 id_feriado
      {
         set { f_id_feriado = value; }
         get { return f_id_feriado; }
      }
      public string data
      {
         set { f_data = value; }
         get { return f_data; }
      }
      public string motivo
      {
         set { f_motivo = value; }
         get { return f_motivo; }
      }

      public int obter()
      {
         String _sql;
         String tabela = "feriado";

         System.Data.DataSet dtsFeriado = new System.Data.DataSet();
         _sql = "SELECT * FROM feriado WHERE id_feriado = " + f_id_feriado;
         dtsFeriado = bd.ExecuteQuery(_sql, tabela, out result);
         if (result.Status == Database.Status.Failed)
         {
            f_msgErro = result.ErrorMessage;
            return -1;
         }
         if (dtsFeriado.Tables[tabela].Rows.Count == 0)
            return 0;

         System.Data.DataRow registro = dtsFeriado.Tables[tabela].Rows[0];
         f_data = Convert.ToString(registro["data"]);
         f_motivo = Convert.ToString(registro["motivo"]);

         return 1;
      }

      public int inserir()
      {
         String _sql;

         _sql = "INSERT INTO feriado"
         + " (data, motivo) "
         + " VALUES('" + f_data + "','" + f_motivo + "')";
         result = bd.ExecuteCommand(_sql, Database.doNotUseTransaction);
         if (result.Status == Database.Status.Failed)
         {
            f_msgErro = result.ErrorMessage;
            return -1;
         }
         return 1;
      }

      public int gravar()
      {
         String _sql;

         _sql = "UPDATE feriado "
             + " SET "
                 + " data='" + f_data + "',"
                 + " motivo='" + f_motivo + "'"
             + " WHERE id_feriado = " + f_id_feriado;

         result = bd.ExecuteCommand(_sql, Database.doNotUseTransaction);
         if (result.Status == Database.Status.Failed)
         {
            f_msgErro = result.ErrorMessage;
            return -1;
         }
         return 1;
      }

      public bool busca(string data)
      {
         string _sql;

         _sql = "SELECT * "
             + "FROM feriado "
             + "WHERE data= '" + data + "'";

         Object resposta = bd.ExecuteScalar(_sql, out result);

         if (resposta != null)
            return true;
         return false;
      }
   }
}
